package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.bean.HwZb;
import com.bw.bean.PsJs;
import com.bw.bean.YdsOrder;
import com.bw.bean.YsLc;
import com.bw.service.OrderInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
//控制器中依赖注入正确
@RestController
public class OrderInfoController {

    @Autowired
    OrderInfoService service;


    //统计物流运单相关总数（接单数、发单数、完成运单数）存储过程
    @RequestMapping("ydList")
    public JSONObject ydList() {
        List<YdsOrder> ydsOrders = service.ydList();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONArray objects = new JSONArray();
        for (YdsOrder ydsOrder : ydsOrders) {
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("name","接单总数");
            jsonObject1.put("value",ydsOrder.getJCount());
            objects.add(jsonObject1);

            JSONObject jsonObject2 = new JSONObject();
            jsonObject2.put("name","发单总数");
            jsonObject2.put("value",ydsOrder.getFCount());
            objects.add(jsonObject2);

            JSONObject jsonObject3 = new JSONObject();
            jsonObject3.put("name","完成运单数");
            jsonObject3.put("value",ydsOrder.getWCount());
            objects.add(jsonObject3);
        }

        jsonObject.put("data",objects);
        return jsonObject;
    }

    //统计各类货物下单次数占比
    @RequestMapping("zbList")
    public JSONObject zbList() {
        List<HwZb> hwZbs = service.zbList();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONArray objects = new JSONArray();
        for (HwZb hwZb : hwZbs) {
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("name",hwZb.getHwName());
            jsonObject1.put("value",hwZb.getZb());
            objects.add(jsonObject1);
        }
        jsonObject.put("data",objects);
        return jsonObject;
    }
    //统计各城市派送成功数
    @RequestMapping("psList")
    public JSONObject psList() {
        List<PsJs> psJs = service.psList();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject jsonObject1 = new JSONObject();
        JSONArray objects = new JSONArray();
        for (PsJs psJ : psJs) {
            objects.add(psJ.getName());
        }
        jsonObject1.put("categories",objects);
        JSONArray objects1 = new JSONArray();
        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name","城市派送数");
        JSONArray objects2 = new JSONArray();
        for (PsJs psJ : psJs) {
            objects2.add(psJ.getSl());
        }
        jsonObject2.put("data",objects2);
        objects1.add(jsonObject2);
        jsonObject1.put("series",objects1);
        jsonObject.put("data",jsonObject1);
        return jsonObject;
    }
    //统计各机构完成运输里程
    @RequestMapping("ysList")
    public JSONObject ysList() {
        List<YsLc> ysLcs = service.ysList();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject jsonObject1 = new JSONObject();
        JSONArray objects = new JSONArray();
        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("name","机构");
        jsonObject2.put("id","jName");
        objects.add(jsonObject2);

        JSONObject jsonObject3 = new JSONObject();
        jsonObject3.put("name","完运里程");
        jsonObject3.put("id","lc");
        objects.add(jsonObject3);

        JSONObject jsonObject4 = new JSONObject();
        jsonObject4.put("name","完运次数");
        jsonObject4.put("id","wCount");
        objects.add(jsonObject4);

        jsonObject1.put("columns",objects);
        JSONArray objects1 = new JSONArray();
        for (YsLc ysLc : ysLcs) {
            JSONObject jsonObject5 = new JSONObject();
            jsonObject5.put("jName",ysLc.getJName());
            jsonObject5.put("lc",ysLc.getLc());
            jsonObject5.put("wCount",ysLc.getWCount());
            objects1.add(jsonObject5);
        }
        jsonObject1.put("rows",objects1);
        jsonObject.put("data",jsonObject1);
        return jsonObject;
    }
}
